package com.culturalCenter.dataCenter.service.user;

import com.culturalCenter.dataCenter.customEntity.responseParam.user.UserInfoResponse;
import com.culturalCenter.dataCenter.customEntity.responseParam.user.UserListResponse;
import com.culturalCenter.dataCenter.customEntity.responseParam.user.UserMenuResponse;
import com.culturalCenter.dataCenter.customEntity.user.CustomListUser;
import com.culturalCenter.dataCenter.entity.user.User;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * User业务层接口
 */
public interface UserService {

    /**
     * User分页查询
     *
     * @param page
     * @param size
     *
     * @return
     */
    PageInfo<User> findPage(int page, int size);

    /**
     * 删除User
     *
     * @param id
     */
    Integer delete(String id);

    /**
     * 修改User数据
     *
     * @param user
     */
    Integer update(User user);

    /**
     * 新增User
     *
     * @param user
     */
    Integer add(User user);

    /**
     * 根据ID查询User
     *
     * @param id
     *
     * @return
     */
    User findById(String id);

    /**
     * 查询所有User
     *
     * @return
     */
    List<User> findAll(User user);

    /**
     * 获取用户主页数据
     *
     * @return
     */
    UserMenuResponse getMenuData();

    /**
     * 获取用户列表数据
     *
     * @param username
     * @param pageNum
     * @param pageSize
     *
     * @return
     */
    UserListResponse findUserList(String branchId,String username, int pageNum, int pageSize);

    /**
     * 用户基本信息
     *
     * @param userId
     *
     * @return
     */
    UserInfoResponse findUserInfo(String userId);

    /**
     * 用户分析
     *
     * @return
     */
    Map<String, List<CustomListUser>> getUserAnalysis(String type);

}
